const path = require("path");//node.js 的模块，拼接路径
// 引入clean插件
const { CleanWebpackPlugin } = require("clean-webpack-plugin");
const HtmlWebpackPlugin = require("html-webpack-plugin");
// const loader = require("ts-loader");
// webpack中的信息应该写在module.exports中
module.exports = {
  //程序的入口文件
  entry: "./src/index.ts",
  //打包后的文件目录

  output: {
    // 指定打包的目录
    path: path.resolve(__dirname, 'dist'),
    // 打包后的文件
    filename: "bundle.js",
    // 告诉webpack不能使用 箭头函数
    environment: {
      arrowFunction: false,
    },
  

  },
  //打包时要用的模块
  module: {

    //指定加载的规则
    rules: [
      {
        // 指定规则生效的文件
        test: /\.ts$/,//用ts结尾的文件
        use: [{//配置babel
          loader: "babel-loader",
          // 设置babel
          options: {//设置预定义的环境
            // presents: [
            //   [
            //     // 指定环境插件
            //     "@babel/preset-env",
            //     {
            //       // 指定目标浏览器
            //       tagets: {
            //         "chrome": "88",
            //       },
            //       // 指定corejs的版本
            //       "corejs": "3",
            //       // 按需加载
            //       "useBuiltIns": "usage"
            //     }
            //   ]
            // ]
          }
        }, "ts-loader"],//
        exclude: /node_module/ //排除
      },
      // 设置less文件的处理
      {
        test:/\.less$/,
        use:[//执行顺序是从下到上
          'style-loader',
          'css-loader',
          'less-loader',
        ]
      }
    ]
  },
  plugins: [
    new CleanWebpackPlugin(),
    new HtmlWebpackPlugin({
      title: "a"
    }),
  ],
  mode: 'development',
}